<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let fn = (a, b) => {
        return a + b;
      };
      let result = fn(1, 2);
      console.log(result);

      //   1.this 是静态的  this始终指向函数声明时所在作用域下的this的值
      function getName() {
        console.log(this.name);
      }
      let getName2 = () => {
        console.log(this.name);
      };

      name = "池";
      const id = {
        name: "小牙",
      };

      //直接调用
      getName();
      getName2();

      //call 方法调用
      getName.call(id);
      getName2.call(id);

      //2.不能作为构造实例化对象
      //   let Person = (name, age) => {
      //     this.name = name;
      //     this.age = age;
      //   };
      //   let me = new Person("xiao", 30);
      //   console.log(me);

      //3.不能使用arguments 变量
      //   let fn = () => {
      //     console.log(arguments);
      //   };
      //   fn(1, 2, 3);

      //4.箭头函数的简写
      // 1) 省略小括号,当形参有且只有一个的时候
      //     let add = n => {
      //         return n+n;
      //     }
      //     console.log(add(9));
      // 2) 省略花括号,当代码体只有一条语句的时候,此时return 必须省略
      //     而且语句的执行结果接收函数的返回值
      let pow = (n) => n * n;
      console.log(pow(9));
    </script>
  </body>
</html>
